package com.ict.web.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ict.web.domain.ProjectManagement;
import com.ict.web.dto.ProjectManagementListDto;
import com.ict.web.dto.QueryPerformanceStatisticsDto;
import com.ict.web.vo.PerformanceStatisticsDetailVo;
import com.ict.web.vo.PerformanceStatisticsListVo;
import com.ict.web.vo.ProjectManagementDetailsVo;
import com.ict.web.vo.ProjectManagementListVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;

import java.util.List;

/**
 * 项目管理Mapper接口
 *
 * @author ruoyi
 * @date 2022-02-14
 */
@Mapper
public interface ProjectManagementMapper extends BaseMapper<ProjectManagement>
{
    /**
     * 查询项目管理
     *
     * @param proId 项目管理主键
     * @return 项目管理
     */
    public ProjectManagementDetailsVo selectProjectManagementByProId(Long proId);

    /**
     * 查询项目管理列表
     *
     * @param dto 项目管理
     * @return 项目管理集合
     */
    public List<ProjectManagementListVo> selectProjectManagementList(ProjectManagementListDto dto);

    public List<ProjectManagementListVo> selectMyProject(ProjectManagementListDto dto);

    public Long company(Long proId);

    public Long type(@Param("planId") Long planId,@Param("list") List<String> list);

    public ProjectManagementDetailsVo selectProjectManagementListByReviewIds(Long reviewTaskId);

    /**
     * 绩效统计列表查询
     * @param queryDto
     * @return
     */
    public List<PerformanceStatisticsListVo> selectPerformanceStatisticsVoList(QueryPerformanceStatisticsDto queryDto);

    /**
     * 绩效统计详情
     * @param perId
     * @return
     */
    public PerformanceStatisticsDetailVo selectPerformanceStatisticsByIdPerId(Long perId);

    /**
     * 批量修改项目状态为待审核
     * @param list
     * @return
     */
    public boolean batchProjectManagement(List<ProjectManagement> list);

    public List<ProjectManagementListVo> selectProjectManagementListVo(Long planId, RowBounds rowBounds);

    /**
     * 统计项目阶段总数
     * @param deptName
     * @param userId
     * @param stag
     * @return
     */
    String projectCount(@Param("deptName") String deptName,@Param("userId")Long userId,@Param("stag")String stag);
    public List<ProjectManagementListVo> commissionProjectManagementList(ProjectManagementListDto dto);
}
